package chop6;

/**
 *面向对象要解决的问题？
 * 类和对象的概念？
 * 面向对象特性：抽象、继承、封装、多态
 * 抽象类的概念、语法、用处
 * 接口的概念、语法、用处
 * 面向对象设计的步骤
 * 发现类
 * 发现类的属性
 * 发现类的方法
 * 优化设计
 * 面向对象设计的过程
 * 使用权限修饰符进行类的封装
 * 继承关系下构造方法的执行
 * 利用多态减少代码量，提高代码的可扩展性和可维护性
 * this、super关键字的使用
 * static、final关键字的使用
 * 接口与抽象类的异同
 * 一切皆对象
 * 用程序描述真实世界
 * 现实世界“是面向对象的”
 * 面向对象设计提抽象的过程
 * 用类图描述设计
 * 设计的过程
 * 发现类
 * 发现类的属性
 * 发现类的方法
 * 抽象的原则
 * 封装
 * 将类的某些信息隐藏在类内部，不允许外部程序直接访问，而是通过该类提供的方法来实现对隐藏信息的操作和访问
 * 使用继承重构代码的好处：
 * 方便修改代码
 * 减少代码量
 * 子类继承父类的关键字： extends
 * 子类调用父类的属性和方法的关键字： super
 * 继承下的构造方法
 * 使用抽象类实现子类继承父类
 * 定义抽象类的关键字： abstract
 * public abstract class Pet {}
 * abstract也可用于方法——抽象方法
 * 抽象方法没有方法体
 * 抽象方法必须在抽象类里
 * 抽象方法必须在子类中被实现，除非子类是抽象类
 * final用法
 * 类不希望再被其他类继承
 * 方法不希望被重写
 * 属性值不希望被改变
 * 多态的概念：
 * 生活中的多态
 * 程序中的多态
 * 同一个引用类型，使用不同的实例而执行不同操作
 * 使用多态实现思路
 * 编写父类
 * 编写子类，子类重写父类方法
 * 运行时，使用父类的类型，子类的对象
 * 方法重写的规则
 * 在继承关系的子类中
 * 重写的方法名、参数、返回值类型必须与父类相同
 * 私有方法不能继承因而也无法重写
 * 使用多态的好处：
 * 提高可维护性
 * 提高可扩展性
 *
 * instanceof运算符
 * 该运算符用来判断一个对象是否属于一个类或者实现了一个接口，结果为true或false
 * 在强制类型转换之前通过instanceof运算符检查对象的真实类型，可以避免类型转换异常，从而提高代码健壮性
 * 对象 instanceof  类或接口
 * public interface MyInterface {
 *        public void foo()；
 *        //其他方法
 * }
 *
 * 接口特性
 * 接口不可以被实例化
 * 实现类必须实现接口的所有方法
 * 实现类可以实现多个接口
 * 接口中的变量都是全局静态常量
 * 面向接口编程
 * 接口是一种能力
 * 关心实现类有何能力，而不关心实现细节
 * 接口是一种约定
 * 面向接口的约定而不考虑接口的具体实现
 * JAVA接口与C#接口语法对比：
 *  	Java接口	C#接口
 * 定义	interface	interface
 * 实现	implements	:
 * 继承	extends	:
 * 静态成员	常量	无
 * public	可以显示使用	不能显示使用
 */
public class index {

}
